package com.iwhalecloud.bss.kite.cucc.client.api.goods;

import com.iwhalecloud.bss.kite.cucc.client.dto.goods.factor.GoodsPriceFactorReqDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.goods.factor.GoodsPriceFactorRspDTO;
import com.iwhalecloud.bss.kite.cucc.client.dto.goods.factor.PriceFactorDTO;
import com.iwhalecloud.bss.kite.manager.inst.KiteOfferInst;

import java.util.List;
import java.util.Map;

/**
 * 计价因子查询接口
 */
public interface IGoodsPriceFactorService {

    /**
     * 计价因子查询
     * @param goodsPriceFactorReqDTO
     * @return
     */
    GoodsPriceFactorRspDTO qryGoodsPriceFactor(GoodsPriceFactorReqDTO goodsPriceFactorReqDTO);

    /**
     * 获取套餐下所有资费的计价因子
     * @param goodSku
     * @return
     */
    List<PriceFactorDTO> getPriceFactors(String goodSku);

    /**
     * 获取套餐下资费的计价因子
     * @param goodSku
     * @param feeCode
     * @return
     */
    List<PriceFactorDTO> getPriceFactors(String goodSku, String feeCode);

    /**
     * 获取套餐下所有资费对应的价格
     * @param sceneInstId
     * @param custId
     * @param mainOfferId
     * @param additionalOfferInst
     * @return
     */
    Map<String, Object> getFeeProdPrice(String sceneInstId, String custId, String mainOfferId, KiteOfferInst additionalOfferInst);

    /**
     * 根据省，市获取城市类型编码
     * @param provinceCode
     * @param cityCode
     * @return
     */
    String getCityTypeCode(String provinceCode, String cityCode);
}
